package com.turbo.cloud.ums.web.model.menu;

import com.turbo.cloud.core.base.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.util.List;

/**
 * <p>
 * 用户权限表
 * </p>
 *
 * @author zhangluning
 * @since 2022-10-11
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Accessors(chain = true)
public class UmsMenuVo extends BaseModel {

    /**
     * 主键
     */
    private String id;

    /**
     * 系统Id
     */
    private String systemId;

    /**
     * 父级权限id
     */
    private String parentId;

    /**
     * 菜单名称
     */
    private String menuTitle;

    /**
     * 菜单编码
     */
    private String menuCode;

    /**
     * 图标
     */
    private String icon;

    /**
     * 权限类型：0->目录；1->菜单；2->按钮；3->接口
     */
    private Integer type;

    /**
     * 路由地址
     */
    private String routerPath;

    /**
     * 路由名称
     */
    private String routerName;

    /**
     * 文件路径
     */
    private String componentPath;

    /**
     * 重定向地址
     */
    private String redirect;

    /**
     * 是否外部链接：0->否；1->是
     */
    private Integer isExtId;

    /**
     * 显示隐藏：0->隐藏；1->显示
     */
    private Integer hideInMenuId;

    /**
     * 显示隐藏：0->隐藏；1->显示
     */
    private Integer hideTabId;

    /**
     * 显示隐藏：0->隐藏；1->显示
     */
    private Integer hideBreadcrumbId;

    /**
     * 显示隐藏子级菜单：0->隐藏；1->显示
     */
    private Integer hideChildrenInMenuId;

    /**
     * 是否保持页面状态：0->不保持，1->保持
     */
    private Integer keepAliveId;

    /**
     * 权限标记
     */
    private String permissionTag;

    /**
     * 排序
     */
    private Integer sort;

    /**
     * 备注信息
     */
    private String note;

    /**
     * 是否有效
     */
    private Boolean stateValue;

    /**
     * 子级
     */
    private List<UmsMenuVo> children;

    /**
     * 是否选中
     */
    private Boolean checked;
}
